/* 
 * Algoritmos y estructura de datos
 * Autor: Gustavo Sanchez Cardona
 * Carnet: 10313
 * Seccion: 
 */
/*
 * Descripcion: Clase para el objeto radio, con los metodos y atributos que constituyen esta clase
 */
public class Radio implements NuestraInterfaz{
	//Atributos
	private boolean encendido;
	private boolean tipo;
	private double estacion_actual;
	private double memoria[][];
	
	//Constructor
	public Radio() {
		encendido=false;
		//El atributo tipo indica si el radio se encuentra en fm o am, true significa que el radio se encuentra en fm y false significa que la radio se encuentra en am
		tipo=true;
		estacion_actual= 87.9;
		memoria= new double[12][2];
	}
	//Metodo power de la interfaz Nuestrainterfaz, no recibe parametros y se encarga de encender y apagar el radio.
	public boolean power(){
		encendido= !encendido;
		return true;
	}
	
	//Metodo cambio de la interfaz Nuestrainterfaz, no recibe parametros y se encarga de cambiar entre am y fm.
	public boolean cambio(){
		tipo= !tipo;
		return tipo;
	}
	//Metodo fw de la interfaz Nuestrainterfaz, no recibe parametros y se encarga de sumarle el respectivo aumento a la estacion actual.
	public void fw(){
		if(tipo){
			estacion_actual+=0.2;
			if(estacion_actual>107.9){
				estacion_actual=87.9;
			}
		}
		else
		{
			estacion_actual+=10;
			if(estacion_actual>1610){
				estacion_actual=530;
			}
		}
	}
	//Metodo bw de la interfaz Nuestrainterfaz, no recibe parametros y se encarga de restarle el respectivo numero a la estacion actual.
	public void bw(){
		if(tipo){
			estacion_actual-=0.2;
			if(estacion_actual<87.9){
				estacion_actual=107.9;
			}
		}
		else
		{
			estacion_actual-=10;
			if(estacion_actual<530){
				estacion_actual=1610;
			}
		}
	}
	//Metodo store de la interfaz Nuestrainterfaz, recibe el lugar en la memoria donde se desea guardar la estacion, guarda la estacion actual en la posicion deseada.
	public void store(int boton){
		if(tipo){
			memoria[boton][0]=estacion_actual;
		}
		else
		{
			memoria[boton][1]=estacion_actual;
		}
	}
	//Metodo select de la interfaz Nuestrainterfaz, recibe el lugar en la memoria de donde se desea cargar la estacion,  iguala la estacion_actual a la estacion en la posicion deseada.
	public void select(int boton){
		if(tipo){
			estacion_actual=memoria[boton][0];
		}
		else
		{
			estacion_actual=memoria[boton][1];
		}
		
	}
	//Metodo fw de la interfaz Nuestrainterfaz, no recibe parametros y devuelve el valor de estacion_actual
	public double getEstacion_actual(){
		return estacion_actual;
	}
	public boolean getEncendido(){
		return encendido;
	}
	public boolean getTipo(){
		return tipo;
	}
	
	
}